Ext.ns("reg");

reg.panel = {};
reg.panel.make = {
	login 		: function(){},
	logindone	: function(){},
	join  		: function(){},
	addCarc  	: function(){},
};

reg.statics = {};
reg.statics.defaultOpt = eval(getCategoryInfo('json' , '' , '' , '' , { 'category_gubun' : 'c001' }));
reg.statics.paramCheck = function( formPanel ) {
	var params = formPanel.getValues();
	var fields = formPanel.getFieldsAsArray();
	
	var i = 0;
	
	for(names in params) {
		if(params[names] == '') {
			Ext.Msg.alert('알림' , fields[i].label + "을 입력해주세요.");
			return false;
		}
		i++;
	}
	
	return true;
};

reg.panelItem = {
	addCarc : {}
};
reg.panelItem.addCarc.select1 = {
	xtype: 'selectfield',
	name : 'category1',
	label : '대분류',
	options : reg.statics.defaultOpt,
	listeners : {
		change : function(thisObj , value ){
			var subList = getCategoryInfo('json' , '' , '' , '' , { 'category_gubun' : value });
			subList = eval(subList);
			var changeTarget = Ext.getCmp('select_category2');
			changeTarget.setOptions(subList);
			changeTarget.setValue( (!subList[0]? '' : subList[0].value) );
			
		},
	},
};

reg.panelItem.addCarc.select2 = {
	xtype: 'selectfield',
	id : 'select_category2',
	name : 'category2',
	label : '소분류',
	options : [{ text: '대분류를 선택해주세요.'   , value : '' } , ],
	listeners : {
		change : function(thisObj , value ){
			
		},
	},	
};

reg.panelItem.addCarc.btn1 = {
	xtype: 'button',
	text : '사진등록',
	align:'center',
	bgcolor:'red',
	handler:function() {
		Ext.Msg.alert('알림' , '사진 등록 미지원.');
	}
};

reg.panelItem.addCarc.btn2 = {
	xtype: 'button',
	text : '완료',
	align:'center',
	handler:function() {
		if(!reg.statics.paramCheck( reg.panel.addCarc )  ) return;
		
		$.post('/carcenter/insert/carc_user_info.gcm' , reg.panel.addCarc.getValues() , function(data) {
			if(data =='Y') {
				Ext.Msg.alert('알림' , '등록 성공.');
				
			}
			else {
				Ext.Msg.alert('알림' , '등록 실패.');
			}
			reg.panel.addCarc.reset();
		});
	}
};
reg.panelItem.addCarc.btn3 = {
	xtype: 'button',
	text : '취소',
	align:'center',
	handler:function() {
		reg.panel.addCarc.reset();
	}
};
reg.panelItem.addCarc.spacer = {
	xtype: 'spacer',
	width: 20,
};

reg.panelItem.addCarc.fieldset1 = {
	xtype: 'fieldset',
	defaults: {
		required: true,
	},
	items: [{
				xtype: 'textfield',
				name : 'name',
				label: '정비소 이름',
			},
			{
				xtype: 'textfield',
				name : 'addr',
				label : '주소',
			},
		reg.panelItem.addCarc.select1,
		reg.panelItem.addCarc.select2,
	],
};

reg.panelItem.addCarc.fieldset2 = {
	xtype: 'fieldset',
	defaults: {
		required:true,
	},
	items:[{
		xtype: 'textfield',
		name : 'description',
		label : '설명',
	}],
};

reg.panelItem.addCarc.fieldset3 = {
	xtype: 'fieldset',
	defaults: {
		required:true,
	},
	layout : {
		type:'hbox',
		pack:'center',
	},
	items:[reg.panelItem.addCarc.btn1,
	       reg.panelItem.addCarc.spacer,
	       reg.panelItem.addCarc.btn2,
	       reg.panelItem.addCarc.spacer,
	       reg.panelItem.addCarc.btn3],
};

reg.panel.make.logindone = function(reload) {
	
	if(!main.login.login_email) {
		// 로그인 안된 상태. 로그인 패널을 만든다.
		reg.panel.make.login();
		return;
	}
	
	if(reload == undefined) reload = true;
	if( !reg.panel.logindone || (reg.panel.logindone && reload) ) {
		//페널이 없거나, 페널이 있는데 리로드 해야되거나
		if(reg.panel.logindone) reg.panel.logindone.destroy();
		
		reg.panel.logindone = new Ext.form.FormPanel({
			fullscreen: true,
			dockedItems : [{
				dock: 'top',
				xtype: 'toolbar',
				title: '로그인',
				items: [
				]
			}],
			items : [{
						xtype : 'textfield',
						labelWidth: '100%',
						label: '로그인된 EMAIL : ' + main.login.login_email,
					},
					{
						xtype: 'fieldset',
						layout : {
							type:'hbox',
							pack:'center',
						},
						items:[
						       {
						    	   xtype:'button',
						    	   text: '로그아웃',
						    	   handler : function(){
						    		   localStorage.setItem('zpyr.carcenter_app.login_info' , '');
						    		   main.login.login_email 	= '';
	        	    				   main.login.mem_name 	= '';
	        	    				   main.login.mem_nickname = '';
	        	    				   
	        	    				   reg.panel.make.login(false);
	        	    				   main.goPage('plogin');
						    	   },
						       },
						]
					}
			],
		});
		
	}
};

reg.panel.make.login = function(reload) {
	if(main.login.login_email) {
		// 로그인 된 상태. 로그인 완료 패널을 만든다.
		reg.panel.make.logindone();
		return;
	}
	if(reload == undefined) reload = true;
	
	if( !reg.panel.login || (reg.panel.login && reload) ) {
		//페널이 없거나, 페널이 있는데 리로드 해야되거나
		if(reg.panel.login) reg.panel.login.destroy();
		
		reg.panel.login = new Ext.form.FormPanel({
			fullscreen: true,
			dockedItems : [{
				dock: 'top',
				xtype: 'toolbar',
				title: '로그인',
				items: [
				]
			}],
			items: [
			        {
			        	xtype:'spacer',
			        	height: 40,
			        },
			        {
			        	xtype: 'emailfield',
			    		name : 'login_email',
			    		label : 'e-mail',
			        },
			        {
			        	xtype:'spacer',
			        	height: 10,
			        },
			        {
			        	xtype: 'passwordfield',
			    		name : 'password',
			    		label : '비밀번호',
			        },
			        {
			        	xtype: 'fieldset',
			        	layout : {
							type:'hbox',
							pack:'center',
						},
			        	items:[
			        	       {
			        	    	   xtype:'button',
			        	    	   text: '로그인',
			        	    	   handler:function() {
			        	    			
			        	    			if( !reg.statics.paramCheck( reg.panel.login ) ) return;
			        	    			

			        	    			$.post('/carcenter/data/member_info.gcm' , reg.panel.login.getValues() , function(data) {
			        	    				var $xml = $(data);
			        	    				if( $xml.find('item').length == 0) {
			        	    					// 아이디를 찾지 못함.
			        	    					Ext.Msg.alert('알림' , '해당하는 이메일정보가 없습니다.');
			        	    					return;
			        	    				}
			        	    				$xml.find('item').each(function(){
			        	    					if( $(this).find('validPwd').text() != 'Y' ) {
			        	    						// 비밀번호가 틀림.
			        	    						Ext.Msg.alert('알림' , '비밀번호가 틀립니다.');
			        	    						return;
			        	    					}
			        	    					
			        	    					main.login.login_email 	= $(this).find('login_email').text();
			        	    					main.login.mem_name 	= $(this).find('mem_name').text();
			        	    					main.login.mem_nickname = $(this).find('mem_nickname').text();
			        	    					
			        	    					localStorage.setItem('zpyr.carcenter_app.login_info' , main.login.toString());
			        	    					
			        	    					reg.panel.make.logindone();
			        	    					main.goPage('plogindone');
			        	    				});
			        	    				
			        	    			});
			        	    		}
			        	       },
			        	       reg.panelItem.addCarc.spacer,
			        	       {
			        	    	   xtype:'button',
			        	    	   text: '회원가입',
			        	    	   handler : function(){
			        	    		   reg.panel.make.join();
			        	    		   main.goPage('pjoin');
			        	    	   },
			        	       },
			        	]
			        }
			]
		});
	}
	
};

reg.panel.make.join = function(reload) {
	if(reload == undefined) reload = true;
	
	if( !reg.panel.join || (reg.panel.join && reload) ) {
		//페널이 없거나, 페널이 있는데 리로드 해야되거나
		if(reg.panel.join) reg.panel.join.destroy();
		
		reg.panel.join = new Ext.form.FormPanel({
			fullscreen: true,
			dockedItems : [{
				dock: 'top',
				xtype: 'toolbar',
				title: '회원가입',
				items: [{
					xtype: 'button',
					text : '닫기',
					handler: function(btn , event) {
					//	reg.panel.join.destroy();
						main.goPage('plogin' , 'fade');
					}
				}]
			}],
			items : [{
			    	   xtype: 'emailfield',
			    	   label: 'E-MAIL',
			    	   name: 'login_email',
		       		 },
		       		{
			    	   xtype: 'textfield',
			    	   label: '닉네임',
			    	   name: 'mem_nickname',
			         },
			         {
						xtype: 'fieldset',
						items:[
						       {
						    	   xtype: 'passwordfield',
						    	   label: '비밀번호',
						    	   name: 'password',
						       },
						       {
						    	   xtype: 'passwordfield',
						    	   label: '확인',
						    	   name: 're_password',
						       },
						       
						]
			         },
			         {
							xtype: 'fieldset',
							layout : {
								type:'hbox',
								pack:'center',
							},
							items:[
							       {
							    	   xtype: 'button',
							    	   text : '가입하기',
							    	   handler : function() {
							    		   if(!reg.statics.paramCheck( reg.panel.join )  ) return;
							    			
							    		   var email = reg.panel.join.getValues()['login_email'];
							    		   var pwd = reg.panel.join.getValues()['password'];
							    		   var repwd = reg.panel.join.getValues()['re_password'];
							    		   
							    		   if( !com.zpyr.Util.isEmail(email) ) {
							    			   Ext.Msg.alert('알림' , '이메일형식(aaa@bbb.ccc)에 맞지 않습니다.')
							    			   return;
							    		   }
							    		   
							    		   if(pwd != repwd) {
							    			  Ext.Msg.alert('알림' , '비밀번호와 비밀번호 확인이 틀립니다.');
							    			  return;
							    		  } 
							    		  
							    		   if(pwd.length < 4) {
							    			   Ext.Msg.alert('알림' , '비밀번호는 4자리 이상을 입력해 주시기 바랍니다.');
								    		   return;
							    		   }
							    		   
							    			$.post('/carcenter/insert/carc_member.gcm' , reg.panel.join.getValues() , function(data) {
							    				
							    				
							    				if(data =='Y') {
							    					Ext.Msg.alert('알림' , '등록 성공.');
							    					reg.panel.join.reset();
							    				}
							    				else {
							    					var errMsg = '';
							    					if(data == 'duplicate_email') errMsg = '이메일이 중복되었습니다.';
							    					if(data == 'duplicate_nickname') errMsg = '닉네임이 중복되었습니다.';
							    					Ext.Msg.alert('알림' , errMsg);
							    					return;
							    						
							    				}
							    				
							    			});
							    	   }
							       },
							]
				         },
			],
		});
	}
};

reg.panel.make.addCarc = function(reload) {
	
	if(!main.login.login_email) {
		Ext.Msg.alert('알림' , '오른쪽 하단의 [환경설정] - [로그인]을 이용하여 먼저 로그인 해주세요.');
		return;
	}
	
	if(reload == undefined) reload = true;
	
	if( !reg.panel.addCarc || (reg.panel.addCarc && reload) ) {
		//페널이 없거나, 페널이 있는데 리로드 해야되거나
		if(reg.panel.addCarc) reg.panel.addCarc.destroy();
		
		reg.panel.addCarc = new Ext.form.FormPanel({
			fullscreen: true,
			scroll: 'vertical',
			standardSubmit: false,
			dockedItems : [{
				dock: 'top',
				xtype: 'toolbar',
				title: '정비소등록',
				items: []
			}],
			items: [ reg.panelItem.addCarc.fieldset1,
			         reg.panelItem.addCarc.fieldset2,
			         reg.panelItem.addCarc.fieldset3,],
		});
	}
};